package org.lzh.dao;

import org.apache.ibatis.annotations.*;
import org.lzh.pojo.User;

import java.util.List;
import java.util.Map;

public interface UserDao {
    //多个参数一定要指定对应的属性，不然Mybatis识别不了

    //-------------------------------------------------新增操作--------------------------------------
    //新建用户，用于注册
    public int insertUser(User user);

    //-------------------------------------------------删除操作-------------------------------------
    //根据id删除该用户
    public int deleteById(Integer id);

    //-------------------------------------------------查找操作-------------------------------------
    //根据用户名查询是否有这个人，用于注册的用户名不能重名
    public User findByUsername(String username);

    //通过学号和密码查找是否有这个人，如果有就登录
    //多个参数一定要指定对应的属性，不然Mybatis识别不了
    public User findByIdAndPassword(@Param("id") String id,@Param("password") String password);

//    //查询所有学生
//    public List<User> findAllStudent();

    //根据id查找用户
    public User findById(@Param("id") String id);


    //查询所有学生 分页查询（通过数组）
    public List<User> findAllStudent();

    //动态sql查询
    public List<User> findByDynamic(User user);

    //查找成绩不为空的学生id
    public List<String> findAllIdScoreNotNull();
    //-------------------------------------------------更新操作-------------------------------------
    //根据id更新用户
    @Update("update tb_user set username=#{username},password=#{password},note=#{note},image_lu=#{imageLu} where id=#{id}")
    public int updateById(User user);

    //根据id动态更新
    public int updateByIdDynamic(User user);
}
